The present invention relates to a data processing apparatus and method for routing messages.
It is common for client devices to communicate request messages to server devices, with the server then delivering or carrying out a requested service. One example of this is a web server in which a web application at a client device transmits a HTTP (Hypertext Transfer Protocol) request to a physically remote web server, with the web server being responsive to the HTTP request to deliver a web page to the client device. Another example is a messaging server in which a messaging application at a client device transmits a request to a physically remote messaging server to deliver a message to another device. In either case, it is also common for a cluster of server devices to be used to improve capability and resilience. In this case, a workload balancing router may be used to spray request messages evenly across the separate server devices within the cluster. The request messages may be processed at the server devices in a message queue (MQ), by a queue manager, providing a transport to back end systems. A NAT (Network Address Translation) router may be used as the workload balancing router.
Where a NAT router is used, a source IP address of the request message received from a client device for forwarding on to one of the server devices is mapped to a destination IP address by the NAT router for transmission to the server device indicated by the destination address. Generally, the allocation of the destination IP address is carried out dynamically. In some cases, the client device and/or server device may misbehave, or a request message may make a request of the server device which cannot be fulfilled. This may cause an error condition at the server device (because it cannot or will not service the request), which needs to be resolved before further request messages (from the same client device/application) can be serviced. As a result, further messages from the same client device/application may flood the error logs at the queue manager of that web server.